Tengo una serie de condiciones
let conditions = [1,3,5,7,9]; let values = [1,2,3,4,5,6,7,8,9,0]Quiero
if (values == 1 || values== 3 || values == 5 || values == 7 || values == 9 ){ return values * 3 } else { return value * 2 }¿Puede alguien ayudarme a evitar escribir múltiples condiciones OR y hacer esto dentro de 1 declaración? Gracias
En primer lugar: puede iterar a través de sus valores usando el operador de map y luego verificar a través de includes
let conditions = [1,3,5,7,9]; let values = [1,2,3,4,5,6,7,8,9,0] const result = values.map(val => conditions.includes(val) ? val * 3 : val * 2); console.log(result)Sugeriría crear un Set a partir de sus condiciones, esto será más eficiente para grandes conjuntos de datos. Luego puede usar Array.map() para crear su resultado:
let conditions = new Set([1,3,5,7,9]); let values = [1,2,3,4,5,6,7,8,9,0] function getResult(values, conditions) { return values.map(value => conditions.has(value) ? value * 3: value * 2) } console.log('getResult:', getResult(values, conditions));Puedes hacerlo:
const toAvoidArray = [1, 3, 5, 7, 9] if (toAvoidArray.indexOf(value) !== -1) { return values * 3 } else { return value * 2 }o en tu caso, puedes hacer esto:
if (value%2!==0) { return values * 3 } else { return value * 2 }